package com.alone.jpa.entity.annotation;

import com.alone.jpa.entity.enhancer.AutoFillDefaultValueProvider;
import org.springframework.core.annotation.AliasFor;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 字段填充
 *
 * @author Alone
 */
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface AutoFill {


    @AliasFor("column")
    String value() default "";

    /**
     * 自定义字段名称，默认通过field名称去匹配{@link AutoFillDefaultValueProvider#getValueMap()}
     */
    @AliasFor("value")
    String column() default "";

    /**
     * 当值存在时，是否覆盖
     */
    boolean isCover() default false;

    /**
     * 填充时机
     */
    FillTiming timing() default FillTiming.INSERT_UPDATE;

}
